package common.properties {


/**
 * Управляет созданием/сохранением в кэше панелек ParamPanel
 */
public class PropertiesPanelManager {
    private static var _instance:PropertiesPanelManager = new PropertiesPanelManager();

    public static function get instance():PropertiesPanelManager {
        return _instance;
    }

    /**
     * Кэш панелек. (Map&lt;тип, панель&gt;)
     */
    protected var cache:Object = new Object();

    public function getPanel(obj:HasProperties):PropertiesPanel {
        var panel:PropertiesPanel = cache[obj.objectType];
        if (panel == null) {
            //создание панели
            panel = new PropertiesPanel();

            //создание списка атрибутов
            panel.properties = obj.properties;
            cache[obj.objectType] = panel;
        }

        return panel;
    }

    public function PropertiesPanelManager() {
    }
}
}